	/*
	 *  From jQuery.Form plugin
	 * 
	 */
	
	$.fn.clearForm = function() {
    	return this.each(function() {
        	var type = this.type, tag = this.tagName.toLowerCase();
          if (tag == 'form')
            return $(':input',this).clearForm();
          if (type == 'text' || type == 'password' || tag == 'textarea')
            this.value = '';
          else if (type == 'checkbox' || type == 'radio')
            this.checked = false;
          else if (tag == 'select')
            this.selectedIndex = -1;
        });
	};	
		
	/*
	 * 	Afterparty
	 */

	$(document).ready(function() {		
		$("#centerpanel").fadeIn();
		
		if($('.insection').length)
			$('.insection').corner( { tl: { radius: 24 }, tr: { radius: 24 }, 
				bl: { radius: 24 }, br: { radius: 24 }, antiAlias: true, autoPad: true });
		if($('.mainmenuitem').length)
			$('.mainmenuitem').corner( { tl: { radius: 16 }, tr: { radius: 16 }, 
			bl: { radius: 16 }, br: { radius: 16 }, antiAlias: true, autoPad: true });
		if($('#errorpanel').length) setTimeout("window.location.href = '/';", 5000);
		
	});
	
	/*
		Actions
	*/
	

	var LIMG = "<img src='/i/loading.gif' alt='Загружается' title='Загружается'/>";
	
	function startLoad(id, url)
	{
		$(document).ready(function() {		
			if($('#' + id).length == 1) {
				$('#' + id).html(LIMG).load(url);
			}
		});		
	}
	
	/*
	 * 	Actions.Security
	 */
	
	function sShowAddForm(type)
	{
		$("#addformcontrol").fadeOut(function() {
			$("#addformitem").fadeIn();
			$("#addformitem").html(LIMG).load(
				"/index.aspx?usecase=SShowAddForm&type=" + type,
				function() { $.FormCheck(); });				
		});
	}
	
	function sAdd(type)
	{
		if($.FormCheck.validateForm($("#formadd")[0])) {
			$("#" + type + "s").html(LIMG).load(
				"/index.aspx?usecase=SAdd&type=" + type + "&" + $("#formadd").serialize(),
				function() { sCancelAdd(); })
		}				
	}
	
	function sCheckId(element)
	{
		var type = $(element).attr("rel");
		var re = new RegExp('^[0-9a-zA-Z]{5,64}$', "g");

   		var result = (element.value.length > 0) && re.test(element.value);  
   		if(!result) {
   			$(element).attr('vnotice', 'Поле должно содержать только латинские буквы и цифры, более 6 символов!');        	
   			element.waitForValadation = false;
			return result; 
   		}
   		
   		result = false; // couse Ajax
   		
   		prev = $(element).attr("previd");
   		if(prev && prev.length) {
   			if(element.value == prev) {
				result = true;
   				element.waitForValadation = false;        			
   			}
   		}
   		
    	if(element.waitForValadation) {
    		$.getJSON("/index.aspx?usecase=SCheckId&type=" + type + "&id=" + element.value,
    			function(data) {
    				result = data.result;         	
    				if(!data.result) {
        				$(element).attr('vnotice', 'Такой идентификатор уже существует!');
    				} else {
        				$(element).attr('vnotice', '');    					
    				}
        			element.waitForValadation = false;        			
    			});
    	}
    	return result;
	}
	
	function sRenameUsecaseForm(uc)
	{
		var val = $("#uc_" + uc).html();
		
		$("#uc_" + uc).html("<input type='text' id='ucf_" + 
			uc + "' value='" + 
			val +"' ondblclick='sRenameUsecase(\"" +
			uc + "\");' name='__nip' size='10' maxlength='128' />");
		$("#uc_" + uc).unbind('dblclick');			
		$("#uc_" + uc).attr('ondblclick', "sRenameUsecase('" + uc + "');");		
	}
	
	function sRenameUsecase(uc)
	{
		if($("#ucf_" + uc).val().length > 0) {
			$("#ucf_" + uc).attr('disabled', 'disabled');
			$("#ucf_" + uc).attr('class', 'vchecking');
			
			$.getJSON("/index.aspx?usecase=SUpdateUsecaseName&uc=" + 
				uc + "&title=" + $("#ucf_" + uc).val(),
    			function(data) {
    				$("#uc_" + uc).html(data.result);
					$("#uc_" + uc).attr('ondblclick', "sRenameUsecaseForm('" + uc + "');");    					
					$("#uc_" + uc).bind('dblclick', function() { sRenameUsecaseForm(uc); });		
    			});
		}		
	}
	
	function sCancelAdd()
	{
		$("#addformitem").fadeOut(function() { $("#addformcontrol").fadeIn(); });			
	}
	
	function sShowForm(type, id)
	{				
		$("#" + type + "_" + id).html(LIMG).load(
			"/index.aspx?usecase=SShowForm&type=" + type + "&id=" + id,
			function() {
				$.FormCheck();
				$("#" + type + "_" + id).addClass('ssel');				
			});
	}
	
	function sCommit(type, id)
	{		
		var form = $("#form-" + type + "-" + id);
		if($.FormCheck.validateForm(form[0])) {
			$("#" + type + "s").html(LIMG).load(
				"/index.aspx?usecase=SCommit&type=" + type + "&" + form.serialize());
		}						
	}
	
	function sCancel(type)
	{
		$("#" + type + "s").html(LIMG).load(
			"/index.aspx?usecase=SShowObjects&type=" + type);		
	}
	
	function sDelete(type, id)
	{
		if(confirm("Вы действительно хотите удалить этот объект?")) {
			$("#" + type + "s").html(LIMG).load(
				"/index.aspx?usecase=SDelete&type=" + type + "&id=" + id)
		}
	}
	
	/*
 	 * 	Actions.MetaBase
 	 */
	
	function mbShowAddCollectionForm()
	{
		$("#addformcontrol").fadeOut(function() {
			$("#addformitem").fadeIn();
		});
	}
	
	function mbCancelAddCollection()
	{
		$("#formadd").clearForm();
		$("#addformitem").fadeOut(function() {
			$("#addformcontrol").fadeIn();			
		});
	}
	
	function mbAddCollection()
	{
		if($.FormCheck.validateForm($("#formadd")[0])) {
		}			
	}
	
	function mbDeleteCollection()
	{
		if(confirm("Вы действительно хотите удалить этот объект?")) {
		}		
	}
	
	